package com.binhthuan.catechist.client.dto;

import java.util.Date;

import name.pehl.piriti.client.json.Json;
import name.pehl.piriti.client.json.JsonReader;
import name.pehl.piriti.client.json.JsonWriter;

import com.google.gwt.core.client.GWT;

/**
 * @author Giang Đinh - Năm học, tương ứng với bảng <b>nam_hoc</b> trong cơ sở
 *         dữ liệu.
 */
public class Year {

    public interface YearReader extends JsonReader<Year> {
    }
    public interface YearWriter extends JsonWriter<Year> {
    }

    public static YearReader READER = GWT.create(YearReader.class);
    public static YearWriter WRITER = GWT.create(YearWriter.class);

    /**
     * Mã năm học.
     */
    @Json
    private Integer id;
    
    /**
     * Ngày bắt đầu.
     */
    @Json
    private Date startDay;
    
    /**
     * Ngày kết thúc.
     */
    @Json
    private Date endDay;
    
    /**
     * Mô tả.
     */
    @Json
    private String description;

    /**
     * 
     */
    public Year() {
    }

    /**
     * Lấy mã năm học.
     * @return Mã năm học.
     */
    public Integer getId() {
        return id;
    }

    /**
     * Gán mã năm học.
     * @param id
     *            Mã năm học.
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * Lấy ngày bắt đầu.
     * @return Ngày bắt đầu.
     */
    public Date getStartDay() {
        return startDay;
    }

    /**
     * Gán ngày bắt đầu.
     * @param startDay Ngày bắt đầu.
     */
    public void setStartDay(Date startDay) {
        this.startDay = startDay;
    }

    /**
     * Lấy ngày kết thúc.
     * @return Ngày kết thúc.
     */
    public Date getEndDay() {
        return endDay;
    }

    /**
     * Gán ngày kết thúc.
     * @param endDay Ngày kết thúc.
     */
    public void setEndDay(Date endDay) {
        this.endDay = endDay;
    }

    /**
     * Lấy mô tả.
     * @return Mô tả.
     */
    public String getDescription() {
        return description;
    }

    /**
     * Gán mô tả.
     * @param description
     *            Mô tả.
     */
    public void setDescription(String description) {
        this.description = description;
    }
}
